package com.yc.cloud.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yc.cloud.common.orm.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * <p>
 * 监视点管理表
 * </p>
 *
 * @author Claude Code
 * @since 2025-09-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hw_monitoring_point")
public class HwMonitoringPoint extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 监视点名称
     */
    @TableField("name")
    private String name;

    /**
     * 监视点编码
     */
    @TableField("code")
    private String code;

    /**
     * 所属区域ID
     */
    @TableField("region_id")
    private Long regionId;

    /**
     * 详细地址
     */
    @TableField("detailed_address")
    private String detailedAddress;

    /**
     * 经度
     */
    @TableField("longitude")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @TableField("latitude")
    private BigDecimal latitude;

    /**
     * 监视点类型：1-重点区域, 2-一般区域, 3-出入口, 4-边界线
     */
    @TableField("point_type")
    private Integer pointType;

    /**
     * 重要程度：1-高, 2-中, 3-低
     */
    @TableField("importance_level")
    private Integer importanceLevel;

    /**
     * 状态：1-启用, 0-禁用
     */
    @TableField("status")
    private Integer status;

    /**
     * 描述信息
     */
    @TableField("description")
    private String description;

    /**
     * 联系人
     */
    @TableField("contact_person")
    private String contactPerson;

    /**
     * 联系电话
     */
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 逻辑删除标志
     */
    @TableField("is_deleted")
    private Integer isDeleted;

    // 字段常量
    public static final String Name = "name";
    public static final String Code = "code";
    public static final String RegionId = "region_id";
    public static final String DetailedAddress = "detailed_address";
    public static final String Longitude = "longitude";
    public static final String Latitude = "latitude";
    public static final String PointType = "point_type";
    public static final String ImportanceLevel = "importance_level";
    public static final String Status = "status";
    public static final String Description = "description";
    public static final String ContactPerson = "contact_person";
    public static final String ContactPhone = "contact_phone";
    public static final String IsDeleted = "is_deleted";
}